Start Input/Output

In MVS/370 and successor versions of IBM mainframe operating systems, Start Input/Output (STARTIO) is a macro instruction and a "branch entry" for low-level device access, where the programmer is responsible for providing a list of device-specific CCWs, that is, a Channel Program, to be executed by I/O channels, control units and devices and a number of "exits", several of which may be immediate returns to IOS. Invokers of STARTIO must be in supervisor mode and key. STARTIO interfaces directly with the IOS component of MVS.

STARTIO's initiation sequence, usually referred to as its "front end", may be in TCB mode or in SRB mode. STARTIO's termination sequence, usually referred to as its "back end", is always in SRB mode.

STARTIO always utilizes an SRB/IOSB pair. The SRB (Service Request Block) is utilized to schedule processor activity, as required, on any available processor, in connection with the related I/O request. The IOSB (Input/Output Supervisor Block) describes the related I/O request, and passes parameters to and receives responses from IOS.

Although STARTIO is not specifically supported by IBM, hence it is not a true programmer interface, nevertheless its macro instruction and its associated "branch entry" have remained remarkably stable throughout the more than thirty-year-long transition from MVS/370 to ES/390, and, presumably, to z/OS, as STARTIO is the sole method of performing lowest-level physical I/O operations on MVS/370 and later instances of the OS.

An additional "branch entry" was added in ES/390, which performs essentially the same function as the original, which was retained for compatibility with existing programs. This additional "branch entry" implicitly obtains the address of the related TCB (from PSATOLD), rather than explicitly obtaining it (from the TCB= keyword parameter) as the original "branch entry" did.

Should a catastrophic error occur during IOS's processing of the related I/O request, it is this TCB, usually a "job step" TCB, which will be abnormally terminated, not whichever TCB happened to be active when the error was detected, which, by the basic design of IOS, could be any TCB in any address space, or, indeed, no TCB at all, i.e., an SRB.

Perhaps the best description of STARTIO and its application is a "white paper" entitled "The STARTIO Facility of MVS"[1], written by Peter Haas, then with Amdahl Corp (subsequently liquidated). Haas's "white paper" contained an application program example which illustrated the required and optional parameters and exits employed by the STARTIO interface.

References